home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / PROLOG / BP330 / !BinPro330 / progs / assertbm < prev    next >
Text File  |  1994-11-09  |  1KB  |  92 lines

  1. :-dynamic board/3.
  2.  
  3. p:-compile('assertbm.pl').
  4.  
  5. go:-go1,fail;go2.
  6.  
  7. go1:-
  8.     time(_),nop,time(N),
  9.     initboard1,time(I0),updateboard1,time(U0),accessboard1,time(A0),
  10.     I is I0-N,U is U0-N,A is A0-N,
  11.     T is I+U+A,
  12.     R=[nop=N,init=I,update=U,access=A,total=T],
  13.     write(R),nl,
  14.         findall(X,board(_,_,X),Xs),length(Xs,Len),
  15.         write('asserted elements'(Len)),nl.
  16.  
  17. go2:-
  18.     time(_),nop,time(N),
  19.     initboard2,time(I0),updateboard2,time(U0),accessboard2,time(A0),
  20.     I is I0-N,U is U0-N,A is A0-N,
  21.     T is I+U+A,
  22.     R=[nop=N,init=I,update=U,access=A,total=T],
  23.     write(R),nl.
  24.  
  25. dim(16 ,16).
  26. % dim(2,2).
  27.  
  28. range(Min,Min,Max):-Min=<Max.
  29. range(I,Min,Max):-
  30.         Min<Max,
  31.         Min1 is Min+1,
  32.         range(I,Min1,Max).
  33.  
  34. nop:-
  35.     dim(MaxX,MaxY),
  36.     range(X,1,MaxX),
  37.     range(Y,1,MaxY),
  38.     fail.
  39. nop.
  40.     
  41. initboard1:-
  42.     dim(MaxX,MaxY),
  43.     range(X,1,MaxX),
  44.     range(Y,1,MaxY),
  45.     assert(board(X,Y,0)),
  46.     fail.
  47. initboard1.
  48.  
  49. updateboard1:-
  50.     dim(MaxX,MaxY),
  51.     range(X,1,MaxX),
  52.     range(Y,1,MaxY),
  53. %    retract1(board(X,Y,_),_),
  54.     retract(board(X,Y,_)),
  55.     assert(board(X,Y,1)),
  56.     fail.
  57. updateboard1.
  58.     
  59. accessboard1:-
  60.     dim(MaxX,MaxY),
  61.     range(X,1,MaxX),
  62.     range(Y,1,MaxY),
  63.     board(X,Y,_),
  64.     fail.
  65. accessboard1.
  66.  
  67. initboard2:-
  68.     dim(MaxX,MaxY),
  69.     range(X,1,MaxX),
  70.     range(Y,1,MaxY),
  71.     def(X,Y,0),
  72.     fail.
  73. initboard2.
  74.  
  75. updateboard2:-
  76.     dim(MaxX,MaxY),
  77.     range(X,1,MaxX),
  78.     range(Y,1,MaxY),
  79.     set(X,Y,1),
  80.     fail.
  81. updateboard2.
  82.  
  83. accessboard2:-
  84.     dim(MaxX,MaxY),
  85.     range(X,1,MaxX),
  86.     range(Y,1,MaxY),
  87.     val(X,Y,_),
  88.     fail.
  89. accessboard2.
  90.  
  91. time(T):-statistics(runtime,[_,T]).
  92.